lib/deploy: Don't include version twice in bootmenu title
authorJonathan Lebon <jonathan@jlebon.com>
Fri, 1 Mar 2019 14:16:55 +0000 (09:16 -0500)
committerAtomic Bot <atomic-devel@projectatomic.io>
Sat, 9 Mar 2019 19:44:15 +0000 (19:44 +0000)
In Silverblue right now, the boot menu title looks like this:

    Fedora 29.20190301.0 (Workstation Edition) 29.20190301.0 (ostree)

This is because RPM-OSTree's `mutate-os-release` feature is enabled,
which injects the OSTree version string directly into `VERSION` and
`PRETTY_NAME`. So appending the version string again is a bit redundant.
Let's just do a simple substring check here before adding the version to
the title.

Closes: #1829
Approved by: cgwalters

src/libostree/ostree-sysroot-deploy.c
tests/admin-test.sh
tests/libtest.sh

index ec9d1592acdbff977c5d1ce471e5f980aa0c989a..d37861b7bae5cfc90edd0dd2552da25ea120cfb7 100644 (file)
@@ -1739,7 +1739,7 @@ install_deployment_kernel (OstreeSysroot   *sysroot,
    *     (specifically, it looks for the substring "(ostree"), so further
    *     changes to the title format may require updating that backend. */
   g_autoptr(GString) title_key = g_string_new (val);
-  if (deployment_version && *deployment_version)
+  if (deployment_version && *deployment_version && !strstr (val, deployment_version))
     {
       g_string_append_c (title_key, ' ');
       g_string_append (title_key, deployment_version);
index 4f0b9e932afbe7e6b8044f389bfece73e2e8a864..79a23f5997aec5515956ed6de64e9243ac17951a 100644 (file)
@@ -21,7 +21,7 @@
 
 set -euo pipefail
 
-echo "1..$((25 + ${extra_admin_tests:-0}))"
+echo "1..$((26 + ${extra_admin_tests:-0}))"
 
 function validate_bootloader() {
     cd ${test_tmpdir};
@@ -280,6 +280,16 @@ validate_bootloader
 
 echo "ok upgrade with multiple kernel args"
 
+os_repository_new_commit
+${CMD_PREFIX} ostree admin upgrade --os=testos
+assert_file_has_content sysroot/boot/loader/entries/ostree-4-testos.conf "^title TestOS 42 ${version} (ostree:testos)$"
+os_repository_new_commit 0 0 testos/buildmaster/x86_64-runtime 42
+${CMD_PREFIX} ostree admin upgrade --os=testos
+assert_file_has_content sysroot/boot/loader/entries/ostree-4-testos.conf "^title TestOS 42 (ostree:testos)$"
+
+echo "ok no duplicate version strings in title"
+
+
 # Test upgrade with and without --override-commit
 # See https://github.com/GNOME/ostree/pull/147
 ${CMD_PREFIX} ostree pull --repo=sysroot/ostree/repo --commit-metadata-only --depth=-1 testos:testos/buildmaster/x86_64-runtime
index a737a9bb5af58f6fce0e953493b0d702b91c73be..e0022512e02bdfe33d67674b053d676880a44390 100755 (executable)
@@ -473,6 +473,7 @@ os_repository_new_commit ()
     boot_checksum_iteration=${1:-0}
     content_iteration=${2:-0}
     branch=${3:-testos/buildmaster/x86_64-runtime}
+    export version=${4:-$(date "+%Y%m%d.${content_iteration}")}
     echo "BOOT ITERATION: $boot_checksum_iteration"
     cd ${test_tmpdir}/osdata
     kver=3.6.0
@@ -507,8 +508,6 @@ os_repository_new_commit ()
 
     echo "content iteration ${content_iteration}" > usr/bin/content-iteration
 
-    export version=$(date "+%Y%m%d.${content_iteration}")
-
     ${CMD_PREFIX} ostree --repo=${test_tmpdir}/testos-repo commit  --add-metadata-string "version=${version}" -b $branch -s "Build"
     cd ${test_tmpdir}
 }